From 337ef6a04c344538b74c4b13d44b639fd5616b83 Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Thu, 9 Feb 2006 20:25:33 +0100 Subject: [PATCH] Remove defunct compile option CONFIG_XEN_SHADOW_MODE. It has been superceded by run-time flag XENFEAT_auto_translated_physmap. This patch changes behaviour slightly: 1. set_pmd/set_pgd/set_pud always use mmu_ops, even when XENFEAT_writable_page_tables is available. Unclear whether we want to add a test to avoid this. 2. xen_l1_entry_update always uses mmu_op. Again, could gate this on XENFEAT_writable_page_tables. 3. We always pin/unpin pagetables. Could gate this on a new XENFEAT flag. Signed-off-by: Keir Fraser --- buildconfigs/linux-defconfig_xen0_x86_32 | 1 - buildconfigs/linux-defconfig_xen0_x86_64 | 1 - buildconfigs/linux-defconfig_xenU_x86_32 | 1 - buildconfigs/linux-defconfig_xenU_x86_64 | 1 - buildconfigs/linux-defconfig_xen_x86_32 | 1 - buildconfigs/linux-defconfig_xen_x86_64 | 1 - linux-2.6-xen-sparse/arch/i386/kernel/head-xen.S | 3 --- linux-2.6-xen-sparse/arch/i386/mm/hypervisor.c | 4 ---- linux-2.6-xen-sparse/arch/i386/mm/pgtable-xen.c | 2 -- linux-2.6-xen-sparse/drivers/xen/Kconfig | 7 ------- .../include/asm-i386/mach-xen/asm/hypervisor.h | 9 --------- .../include/asm-i386/mach-xen/asm/pgtable-2level.h | 4 ---- .../include/asm-i386/mach-xen/asm/pgtable-3level.h | 11 ++--------- 13 files changed, 2 insertions(+), 44 deletions(-) diff --git a/buildconfigs/linux-defconfig_xen0_x86_32 b/buildconfigs/linux-defconfig_xen0_x86_32 index bc4d073c4e..28f41fb284 100644 --- a/buildconfigs/linux-defconfig_xen0_x86_32 +++ b/buildconfigs/linux-defconfig_xen0_x86_32 @@ -1317,7 +1317,6 @@ CONFIG_XEN_BLKDEV_FRONTEND=y CONFIG_XEN_NETDEV_FRONTEND=y # CONFIG_XEN_BLKDEV_TAP is not set # CONFIG_XEN_TPMDEV_FRONTEND is not set -# CONFIG_XEN_SHADOW_MODE is not set CONFIG_XEN_SCRUB_PAGES=y CONFIG_XEN_DISABLE_SERIAL=y CONFIG_HAVE_ARCH_ALLOC_SKB=y diff --git a/buildconfigs/linux-defconfig_xen0_x86_64 b/buildconfigs/linux-defconfig_xen0_x86_64 index 2478eb36e6..c8f1c86fef 100644 --- a/buildconfigs/linux-defconfig_xen0_x86_64 +++ b/buildconfigs/linux-defconfig_xen0_x86_64 @@ -1242,7 +1242,6 @@ CONFIG_XEN_BLKDEV_FRONTEND=y CONFIG_XEN_NETDEV_FRONTEND=y # CONFIG_XEN_BLKDEV_TAP is not set # CONFIG_XEN_TPMDEV_FRONTEND is not set -# CONFIG_XEN_SHADOW_MODE is not set CONFIG_XEN_SCRUB_PAGES=y CONFIG_XEN_DISABLE_SERIAL=y CONFIG_HAVE_ARCH_ALLOC_SKB=y diff --git a/buildconfigs/linux-defconfig_xenU_x86_32 b/buildconfigs/linux-defconfig_xenU_x86_32 index c10ab66ef9..9747064a0f 100644 --- a/buildconfigs/linux-defconfig_xenU_x86_32 +++ b/buildconfigs/linux-defconfig_xenU_x86_32 @@ -864,7 +864,6 @@ CONFIG_XEN_BLKDEV_FRONTEND=y CONFIG_XEN_NETDEV_FRONTEND=y # CONFIG_XEN_BLKDEV_TAP is not set # CONFIG_XEN_TPMDEV_FRONTEND is not set -# CONFIG_XEN_SHADOW_MODE is not set CONFIG_XEN_SCRUB_PAGES=y CONFIG_XEN_DISABLE_SERIAL=y CONFIG_HAVE_ARCH_ALLOC_SKB=y diff --git a/buildconfigs/linux-defconfig_xenU_x86_64 b/buildconfigs/linux-defconfig_xenU_x86_64 index e2cd16bf93..e4e5b19a63 100644 --- a/buildconfigs/linux-defconfig_xenU_x86_64 +++ b/buildconfigs/linux-defconfig_xenU_x86_64 @@ -1142,7 +1142,6 @@ CONFIG_XEN_BLKDEV_FRONTEND=y CONFIG_XEN_NETDEV_FRONTEND=y # CONFIG_XEN_BLKDEV_TAP is not set # CONFIG_XEN_TPMDEV_FRONTEND is not set -# CONFIG_XEN_SHADOW_MODE is not set CONFIG_XEN_SCRUB_PAGES=y CONFIG_XEN_DISABLE_SERIAL=y CONFIG_HAVE_ARCH_ALLOC_SKB=y diff --git a/buildconfigs/linux-defconfig_xen_x86_32 b/buildconfigs/linux-defconfig_xen_x86_32 index a4004eee3f..ecfc6cbf8c 100644 --- a/buildconfigs/linux-defconfig_xen_x86_32 +++ b/buildconfigs/linux-defconfig_xen_x86_32 @@ -2999,7 +2999,6 @@ CONFIG_XEN_BLKDEV_FRONTEND=y CONFIG_XEN_NETDEV_FRONTEND=y # CONFIG_XEN_BLKDEV_TAP is not set # CONFIG_XEN_TPMDEV_FRONTEND is not set -# CONFIG_XEN_SHADOW_MODE is not set CONFIG_XEN_SCRUB_PAGES=y CONFIG_XEN_DISABLE_SERIAL=y CONFIG_HAVE_ARCH_ALLOC_SKB=y diff --git a/buildconfigs/linux-defconfig_xen_x86_64 b/buildconfigs/linux-defconfig_xen_x86_64 index 1f4a66a89b..5fffef64a4 100644 --- a/buildconfigs/linux-defconfig_xen_x86_64 +++ b/buildconfigs/linux-defconfig_xen_x86_64 @@ -2674,7 +2674,6 @@ CONFIG_XEN_BLKDEV_FRONTEND=y CONFIG_XEN_NETDEV_FRONTEND=y # CONFIG_XEN_BLKDEV_TAP is not set # CONFIG_XEN_TPMDEV_FRONTEND is not set -# CONFIG_XEN_SHADOW_MODE is not set CONFIG_XEN_SCRUB_PAGES=y CONFIG_XEN_DISABLE_SERIAL=y CONFIG_HAVE_ARCH_ALLOC_SKB=y diff --git a/linux-2.6-xen-sparse/arch/i386/kernel/head-xen.S b/linux-2.6-xen-sparse/arch/i386/kernel/head-xen.S index 41a8cc4f82..6f8be45843 100644 --- a/linux-2.6-xen-sparse/arch/i386/kernel/head-xen.S +++ b/linux-2.6-xen-sparse/arch/i386/kernel/head-xen.S @@ -10,9 +10,6 @@ .ascii ",PAE=yes" #else .ascii ",PAE=no" -#endif -#ifdef CONFIG_XEN_SHADOW_MODE - .ascii ",SHADOW=translate" #endif .ascii ",LOADER=generic" .byte 0 diff --git a/linux-2.6-xen-sparse/arch/i386/mm/hypervisor.c b/linux-2.6-xen-sparse/arch/i386/mm/hypervisor.c index 4c989b5a89..2413c5cc4f 100644 --- a/linux-2.6-xen-sparse/arch/i386/mm/hypervisor.c +++ b/linux-2.6-xen-sparse/arch/i386/mm/hypervisor.c @@ -52,7 +52,6 @@ #endif #endif -#ifndef CONFIG_XEN_SHADOW_MODE void xen_l1_entry_update(pte_t *ptr, pte_t val) { mmu_update_t u; @@ -96,7 +95,6 @@ void xen_l4_entry_update(pgd_t *ptr, pgd_t val) BUG_ON(HYPERVISOR_mmu_update(&u, 1, NULL, DOMID_SELF) < 0); } #endif /* CONFIG_X86_64 */ -#endif /* CONFIG_XEN_SHADOW_MODE */ void xen_machphys_update(unsigned long mfn, unsigned long pfn) { @@ -181,7 +179,6 @@ void xen_invlpg_mask(cpumask_t *mask, unsigned long ptr) #endif /* CONFIG_SMP */ -#ifndef CONFIG_XEN_SHADOW_MODE void xen_pgd_pin(unsigned long ptr) { struct mmuext_op op; @@ -253,7 +250,6 @@ void xen_pmd_unpin(unsigned long ptr) BUG_ON(HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF) < 0); } #endif /* CONFIG_X86_64 */ -#endif /* CONFIG_XEN_SHADOW_MODE */ void xen_set_ldt(unsigned long ptr, unsigned long len) { diff --git a/linux-2.6-xen-sparse/arch/i386/mm/pgtable-xen.c b/linux-2.6-xen-sparse/arch/i386/mm/pgtable-xen.c index 0472b93017..adf7743fd6 100644 --- a/linux-2.6-xen-sparse/arch/i386/mm/pgtable-xen.c +++ b/linux-2.6-xen-sparse/arch/i386/mm/pgtable-xen.c @@ -402,7 +402,6 @@ void pgd_free(pgd_t *pgd) kmem_cache_free(pgd_cache, pgd); } -#ifndef CONFIG_XEN_SHADOW_MODE void make_lowmem_page_readonly(void *va, unsigned int feature) { pte_t *pte; @@ -500,7 +499,6 @@ void make_pages_writable(void *va, unsigned int nr, unsigned int feature) va = (void *)((unsigned long)va + PAGE_SIZE); } } -#endif /* CONFIG_XEN_SHADOW_MODE */ static inline void pgd_walk_set_prot(void *pt, pgprot_t flags) { diff --git a/linux-2.6-xen-sparse/drivers/xen/Kconfig b/linux-2.6-xen-sparse/drivers/xen/Kconfig index a0f3a1cb82..099c6ed888 100644 --- a/linux-2.6-xen-sparse/drivers/xen/Kconfig +++ b/linux-2.6-xen-sparse/drivers/xen/Kconfig @@ -123,13 +123,6 @@ config XEN_TPMDEV_FRONTEND help The TPM-device frontend driver. -config XEN_SHADOW_MODE - bool "Fake shadow mode" - default n - help - Fakes out a shadow mode kernel - - config XEN_SCRUB_PAGES bool "Scrub memory before freeing it to Xen" default y diff --git a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/hypervisor.h b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/hypervisor.h index 00bbb3ad95..c72cafeb52 100644 --- a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/hypervisor.h +++ b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/hypervisor.h @@ -76,7 +76,6 @@ void xen_load_gs(unsigned int selector); /* x86_64 only */ void xen_tlb_flush(void); void xen_invlpg(unsigned long ptr); -#ifndef CONFIG_XEN_SHADOW_MODE void xen_l1_entry_update(pte_t *ptr, pte_t val); void xen_l2_entry_update(pmd_t *ptr, pmd_t val); void xen_l3_entry_update(pud_t *ptr, pud_t val); /* x86_64/PAE */ @@ -89,14 +88,6 @@ void xen_pmd_pin(unsigned long ptr); /* x86_64 only */ void xen_pmd_unpin(unsigned long ptr); /* x86_64 only */ void xen_pte_pin(unsigned long ptr); void xen_pte_unpin(unsigned long ptr); -#else -#define xen_l1_entry_update(_p, _v) set_pte((_p), (_v)) -#define xen_l2_entry_update(_p, _v) set_pgd((_p), (_v)) -#define xen_pgd_pin(_p) ((void)0) -#define xen_pgd_unpin(_p) ((void)0) -#define xen_pte_pin(_p) ((void)0) -#define xen_pte_unpin(_p) ((void)0) -#endif void xen_set_ldt(unsigned long ptr, unsigned long bytes); void xen_machphys_update(unsigned long mfn, unsigned long pfn); diff --git a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-2level.h b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-2level.h index 224e2e3c95..d883e06607 100644 --- a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-2level.h +++ b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-2level.h @@ -31,11 +31,7 @@ #define set_pte_atomic(pteptr, pteval) set_pte(pteptr,pteval) -#ifndef CONFIG_XEN_SHADOW_MODE #define set_pmd(pmdptr, pmdval) xen_l2_entry_update((pmdptr), (pmdval)) -#else -#define set_pmd(pmdptr, pmdval) (*(pmdptr) = (pmdval)) -#endif #define ptep_get_and_clear(mm,addr,xp) __pte_ma(xchg(&(xp)->pte_low, 0)) #define pte_same(a, b) ((a).pte_low == (b).pte_low) diff --git a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-3level.h b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-3level.h index d4a93a8699..5475301546 100644 --- a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-3level.h +++ b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/pgtable-3level.h @@ -83,17 +83,10 @@ static inline void set_pte(pte_t *ptep, pte_t pte) } \ } while (0) -#ifdef CONFIG_XEN_SHADOW_MODE -# define set_pmd(pmdptr,pmdval) \ - set_64bit((unsigned long long *)(pmdptr),pmd_val(pmdval)) -# define set_pud(pudptr,pudval) \ - (*(pudptr) = (pudval)) -#else -# define set_pmd(pmdptr,pmdval) \ +#define set_pmd(pmdptr,pmdval) \ xen_l2_entry_update((pmdptr), (pmdval)) -# define set_pud(pudptr,pudval) \ +#define set_pud(pudptr,pudval) \ xen_l3_entry_update((pudptr), (pudval)) -#endif /* * Pentium-II erratum A13: in PAE mode we explicitly have to flush -- 2.30.2